PHPUnit 和 CodeIgniter
全部标签 我正在使用PHPUnit生成代码覆盖率报告vendor/bin/phpunit--coverage-clovercoverage.clover我有一些代码库在他们的测试中使用了@covers标签,表明他们测试的服务。在这些代码库中,没有针对值对象等事物的专门测试。这导致覆盖率报告表明很多代码没有经过测试,而实际上是这样。这使得很难通过查看覆盖率报告找到实际未经测试的代码。解决此问题的一种方法是删除@covers标记,尽管这些标记对于指示意图很有用,并且在IDE识别它们时它们有助于导航。因此我希望PHPUnit忽略这些标签。我发现有一个--disable-coverage-ignore标
我有一系列PHPUnit测试来验证类“A类”。我有另一个类,“B类”,它扩展了A类。有没有一种好的方法可以在不复制测试代码的情况下测试“B类通过了A类的测试”,或者换句话说“B类的行为与A类一样”?我可以测试扩展(使用instanceof),但这似乎是一个误导性测试。我关心它的行为是否像A类,而不是它扩展了A类,对吧?还是错了? 最佳答案 只需扩展A类的PHPUnit测试用例,对于B类,就可以了。 关于PHPUnit,测试"BehavesLikeA...",我们在StackOverflo
我想创建一个对象数组,所以我所做的是创建一个库,但我不知道如何在循环中实际动态创建它的实例并将每个实例存储在一个数组中。谁能告诉我吗? 最佳答案 根据设计,加载CodeIgniter库只能执行一次。随后加载相同库的尝试将被忽略。您可以(在某种程度上)通过告诉CI在每次加载库的另一个副本时用不同的名称实例化类来解决这个问题(参见thisquestion的答案)更好的解决方案可能是自己创建类,而不是使用CI的库加载机制。这样您就可以根据需要创建和存储任意数量的副本。编辑:我建议将类留在库目录中,并仅使用PHP的include()使其在需
是否可以将PHPUnit测试打包为PHAR存档,并使用phpunit运行它们?我使用以下脚本创建了一个.phar:addFile('mytest.php');$sStub=setStub($sStub);$cPhar->compressFiles(Phar::GZ);$cPhar->stopBuffering();?>但是当我尝试按如下方式运行生成的存档时:phpunitmytests-archive.phar我收到错误信息:#!/usr/bin/phpPHPUnit3.3.17bySebastianBergmann.ClassMyTestClasscouldnotbefoundin/
我在这个构造函数中有一个名为member的controllerfunction__construct(){parent::Controller();$this->is_logged_in();}我想在我的另一个Controller中检查用户是否已登录我如何在我的另一个名为配置文件和其他Controller中使用此功能这是我使用CodeIgniter的第一个项目 最佳答案 您的身份验证检查应该在库中:这是基本的codigniter身份验证脚本的摘录:classSite_sentry{functionSite_sentry(){$thi
我一直在用Zend开发一个典型的博客风格的应用程序。到目前为止,我一直在进行最少的测试,但现在我需要进行防弹测试,并且我正在寻求有关我的单元测试策略的一些建议或提示。模型:为了测试模型,我一直在扩展PHPUnit_Framework_TestCase。这似乎工作正常。我已经阅读了Zend_Test_PHPUnit_DatabaseTestCase,但是我不确定我会在哪里使用它?我认为这可能不需要我在每次测试之间删除/创建数据库,但事实似乎并非如此?在每次测试之间删除/创建数据库变得非常痛苦,因为我有很多测试数据。有什么简单的方法可以解决这个问题(例如模拟数据库?),还是我应该减少测试数
我有一个oracle数据库的开放端口url192.168.1.9及其username:test和password:test我如何连接到oracle数据库在codeigniter中使用此数据和url? 最佳答案 要做到这一点,你必须使用oci8extension与CI的oci8driver:$config['hostname']='192.168.1.9/XE';//assumingitisXE$config['username']='test';$config['password']='test';$config['database
我有一个填充的CodeIgniterform_multiselect。里面有值代码如下:Employee8Employee1Employee12这在您可以向多个用户发送消息的系统上运行。所以我想做的是说用户选择值1和值8。我想使用相同的数据运行两次插入,但唯一的区别是数据库中的EMPLOYEES_id字段每次都不同。我的模型如下:functioncreate(){$this->template->set('title','CreateMessage');//Validatetheforminput$this->form_validation->set_error_delimiters(
我想知道是否可以通过例如将依赖项注入(inject)从PHPUnit_Framework_TestCase派生的类中一些上下文测试套件-以PHPUnit可以处理的方式,而不管它是否已通过phpunit.xml配置文件或其他方式手动调用?请考虑以下示例:现在我想为实现AnyGreeter的类提供一些通用测试,例如:getGreeter();$message=$greeter->greet("world");$this->assertContains("world",$message);}publicfunctionsetGreeter(AnyGreeter$greeter){$this-
这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。刚刚读到CodeIgniter2.x具有内置的CSRF保护。现在阅读文档后,我没有发现任何与CSRF相关的内容,只是将其设置为TRUE的选项。在config.php文件就是这样。但是,在我的系统中我不使用这个form_helper它自动合并了CodeIgniter的CSRF保护,而不是我有原生的的HTML。我担心的是我是否需要做任何事情来实现CodeIg